/*
 * tp boole
 */
package boole.circuit;

import boole.utils.ParcoursTopologique;
import java.util.Map;

/**
 *
 * @author Thomas Nds nds.thomas@gmail.com
 */
public abstract class Circuit implements _Operable {

    private Map<Integer, _Composant> operateurs;

    /**
     *
     * @return L'ensemble des operateurs dont est composé le circuit.
     */
    public Map<Integer, _Composant> getOperateurs() {
        return operateurs;
    }

    public Circuit(Map<Integer, _Composant> operateurs) {
        this.operateurs = operateurs;
    }

    /**
     * Le calcul d'un circuit , c'est un parcours topologique de ses composants
     */
    @Override
    public void calcul() {
        System.out.println("Calcul circuit " + this);
        ParcoursTopologique pt = new ParcoursTopologique((Circuit)this);
        pt.traitement();
    }
}
